home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
ABUSESRC.ZIP
/
AbuseSrc
/
abuse
/
inc
/
tiles.hpp
< prev
next >
Wrap
Text File
|
1996-01-24
|
1KB
|
71 lines
class tile
{
uchar *im_data;
uchar *run_data;
boundary *points;
ushort next;
public :
tile(bFILE *fp, int type);
} ;
tile::tile(bFILE *fp, int type, int w, int h)
{
int cw=fp->read_short(),ch=fp->read_short();
if (cw!=w || ch!=h)
{
lbreak("load_tiles : expecting tile size to be %dx%d, got %dx%d\n",w,h,cw,ch);
exit(0);
}
im_data=(uchar *)jmalloc(w*h,"tile image");
fp->read(im_data,w*h);
if (type==SPEC_FORETILE)
{
next=fp->read_short(); // next
fp->read_byte(); // skip damage, not implemented
points=new boundary(fp,"tile boundary");
uchar *c=im_data;
int need_runs=0;
if (need_runs)
run_data=make_runs(im_data,w,h);
} else run_data=NULL;
} else { points=NULL; run_data=NULL; }
}
class tile_set
{
public :
int w,h,t;
int *id;
tile_set *next;
tile_set(int width, int height);
void add(int tile_id, int tile_number);
} ;
tile_set::tile_set(int width, int height, tile_set *Next)
{
w=width;
h=height;
t=0;
next=Next;
id=NULL;
}
void tile_set::add(int tile_id, int tile_number)
{
if (tile_number>=t)
{
id=(int *)jrealloc(id,sizeof(int)*tile_number,"tile set list");
t=tile_number;
}
id[tile_number]=tile_id;
}